package com.shenjialin.util;

import com.shenjialin.Game.Bullet;
import com.shenjialin.Map.MapTile;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

public class MapTilePool {
    public static final int DEFAULT_SIZE = 150;
    public static final int POOL_MAXSIZE = 200;
    // 用于保存所有砖块的容器
    private static List<MapTile> pool = new ArrayList<>();
    // 在类加载的时候 创建默认个砖块对象 添加到容器中
    static {
        for (int i = 0; i < DEFAULT_SIZE; ++i) {
            pool.add(new MapTile());
        }
    }

    /**
     * 从池塘中获得砖块对象
     * @return
     */
    public static MapTile get() {
        MapTile mapTile;
        if (pool.size() == 0) {// 对象池中没有对象可以使用
            mapTile = new MapTile();
        }else{// 从对象池中获得一个子弹对象
            mapTile = pool.remove(0);
        }
        return mapTile;
    }

    /**
     * 砖块对象的回收 归还到对象池中
     */
    public static void theReturn(MapTile mapTile) {
        // 对象池满
        if(pool.size() >= DEFAULT_SIZE){
            return;
        }
        pool.add(mapTile);
        System.out.println(pool.size());
    }
}
